package FrontOffice;

import java.awt.Color;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.KeyEvent;
import java.awt.event.KeyListener;

import javax.swing.ComboBoxModel;
import javax.swing.DefaultComboBoxModel;
import javax.swing.JButton;
import javax.swing.JComboBox;

import javax.swing.WindowConstants;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;

public class LanguageSelect extends javax.swing.JPanel {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;

	{
		// Set Look & Feel
		try {
			javax.swing.UIManager
					.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private JLabel Select_Label;
	private JComboBox ErsteSprache;
	private JLabel jLabel2;
	private JLabel jLabel3;
	private JLabel jLabel4;
	private JButton jzurueck;
	private JLabel Mindestanzahl_Label;
	private JTextField AnzahlTextFeld;
	private JLabel jLabel1;
	private JComboBox KategorieAuswahl;
	private JButton Button_OK;
	private JComboBox ZweiteSprache;

	/**
	 * Auto-generated main method to display this JPanel inside a new JFrame.
	 */
	public static void main(String[] args) {
		JFrame frame = new JFrame();
		frame.getContentPane().add(new LanguageSelect());
		frame.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
		frame.pack();
		frame.setVisible(true);
	}

	public LanguageSelect() {
		super();
		initGUI();
	}

	private void initGUI() {
		try {
			this.setPreferredSize(new java.awt.Dimension(800, 600));
			this.setSize(800, 600);
			this.setLayout(null);
			{
				Select_Label = new JLabel();
				this.add(Select_Label);
				Select_Label.setText("Sprachauswahl");
				Select_Label.setBounds(270, 88, 231, 30);
				Select_Label.setFont(new java.awt.Font("SansSerif", 0, 20));
			}
			{
				ComboBoxModel ChooseModel = new DefaultComboBoxModel(
						new String[] { "Item One", "Item Two" });
				ErsteSprache = new JComboBox();
				this.add(ErsteSprache);
				ErsteSprache.setModel(ChooseModel);
				ErsteSprache.setBounds(237, 171, 309, 56);
				ErsteSprache.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						ErsteSpracheActionPerformed(evt);
					}
				});
			}
			{
				Button_OK = new JButton();
				this.add(Button_OK);
				Button_OK.setText("Let's go!");
				Button_OK.setBounds(319, 451, 131, 63);
				Button_OK.setFont(new java.awt.Font("SansSerif", 1, 14));
				Button_OK.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						Button_OKActionPerformed(evt);
					}
				});
			}
			{
				ComboBoxModel jComboBox1Model = new DefaultComboBoxModel(
						new String[] { "Item One", "Item Two" });
				ZweiteSprache = new JComboBox();
				this.add(ZweiteSprache);
				ZweiteSprache.setModel(jComboBox1Model);
				ZweiteSprache.setBounds(237, 239, 309, 56);
				ZweiteSprache.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						ZweiteSpracheActionPerformed(evt);
					}
				});
			}
			{
				ComboBoxModel jComboBox1Model = new DefaultComboBoxModel(
						new String[] { "Item One", "Item Two" });
				KategorieAuswahl = new JComboBox();
				this.add(KategorieAuswahl);
				KategorieAuswahl.setModel(jComboBox1Model);
				KategorieAuswahl.setBounds(237, 307, 309, 56);
			}
			{
				jLabel1 = new JLabel();
				this.add(jLabel1);
				jLabel1.setText("zu lernende Sprache: ");
				jLabel1.setBounds(66, 192, 159, 15);
			}
			{
				jLabel2 = new JLabel();
				this.add(jLabel2);
				jLabel2.setText("Deine Sprache: ");
				jLabel2.setBounds(66, 260, 159, 15);
			}
			{
				jLabel3 = new JLabel();
				this.add(jLabel3);
				jLabel3.setText("Kategorie: ");
				jLabel3.setBounds(66, 328, 127, 15);
			}
			{
				AnzahlTextFeld = new JTextField();
				this.add(AnzahlTextFeld);
				AnzahlTextFeld.setBounds(357, 387, 56, 27);
			}
			{
				jLabel4 = new JLabel();
				this.add(jLabel4);
				jLabel4.setText("Anzahl Vokabeln:");
				jLabel4.setBounds(66, 393, 159, 15);
			}
			{
				Mindestanzahl_Label = new JLabel();
				this.add(Mindestanzahl_Label);
				Mindestanzahl_Label.setText("mind. 10");
				Mindestanzahl_Label.setBounds(436, 393, 76, 15);
			}
			{
				jzurueck = new JButton();
				this.add(jzurueck);
				jzurueck.setText("zur\u00FCck");
				jzurueck.setBounds(344, 531, 74, 27);
				jzurueck.addActionListener(new ActionListener() {
					@Override
					public void actionPerformed(ActionEvent evt) {
						jzurueckActionPerformed(evt);
					}
				});
			}
			combo_sprache_fullen();
			AnzahlTextFeld.addKeyListener(new KeyListener() {

				@Override
				public void keyTyped(KeyEvent e) {
					// TODO Auto-generated method stub

				}

				@Override
				public void keyReleased(KeyEvent e) {
					// TODO Auto-generated method stub
					if (e.getKeyCode() == KeyEvent.VK_ENTER) {
						Button_OKActionPerformed(null);
					}
				}

				@Override
				public void keyPressed(KeyEvent e) {
					// TODO Auto-generated method stub

				}
			});
		} catch (Exception e) {
			e.printStackTrace();
		}
	}

	private void Button_OKActionPerformed(ActionEvent evt) {
		try {
			if (Integer.parseInt(AnzahlTextFeld.getText()) >= 10) {
				Statements.Anzahl_Vokabeln = Integer.parseInt(AnzahlTextFeld
						.getText());
				Statements.gewaehlte_Anzahl = Integer.parseInt(AnzahlTextFeld
						.getText());
				Statements.first_language = ErsteSprache.getSelectedItem()
						.toString();
				Statements.second_language = ZweiteSprache.getSelectedItem()
						.toString();
				
				Statements.kategorie = KategorieAuswahl.getSelectedItem()
						.toString();
				// Start.getStart().getContentPane().removeAll();
				// Training L = new Training();
				// Start.getStart().add(L);
				// Start.getStart().validate();
				this.removeAll();
				add(new Training());
				this.repaint();

			}
			if (Integer.parseInt(AnzahlTextFeld.getText()) < 10) {
				Mindestanzahl_Label.setText("<html><b>mind. 10 !!!</b></html>");
				Mindestanzahl_Label.setForeground(Color.red);
			}
		} catch (Exception es) {

		}

	}

	private void combo_sprache_fullen() {
		ErsteSprache.removeAllItems();
		ZweiteSprache.removeAllItems();
		Statements.combosprachefuellen(ErsteSprache);
		Statements.combosprachefuellen(ZweiteSprache);
	}

	private void combo_Kategorie_fullen() {
		KategorieAuswahl.removeAllItems();
		if (!ErsteSprache.getSelectedItem().toString()
				.equals(ZweiteSprache.getSelectedItem().toString())) {
			Statements.combokategoriefuellen(ErsteSprache.getSelectedItem()
					.toString(), ZweiteSprache.getSelectedItem().toString(),
					KategorieAuswahl);
		}

	}

	private void ErsteSpracheActionPerformed(ActionEvent evt) {
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null) {
			combo_Kategorie_fullen();
		}
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem().toString().equals("EN")) {
			Statements.Kategorie_Englisch_Ausgewahlt(ErsteSprache
					.getSelectedItem().toString(), ZweiteSprache
					.getSelectedItem().toString(), KategorieAuswahl);
		}
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null
				&& ErsteSprache.getSelectedItem().toString().equals("EN")) {
			Statements.Kategorie_Englisch_Ausgewahlt(ErsteSprache
					.getSelectedItem().toString(), ZweiteSprache
					.getSelectedItem().toString(), KategorieAuswahl);
		}
	}

	private void ZweiteSpracheActionPerformed(ActionEvent evt) {
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null) {
			combo_Kategorie_fullen();
		}
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem().toString().equals("EN")) {
			Statements.Kategorie_Englisch_Ausgewahlt(ErsteSprache
					.getSelectedItem().toString(), ZweiteSprache
					.getSelectedItem().toString(), KategorieAuswahl);
		}
		if (ErsteSprache.getSelectedItem() != null
				&& ZweiteSprache.getSelectedItem() != null
				&& ErsteSprache.getSelectedItem().toString().equals("EN")) {
			Statements.Kategorie_Englisch_Ausgewahlt(ErsteSprache
					.getSelectedItem().toString(), ZweiteSprache
					.getSelectedItem().toString(), KategorieAuswahl);
		}
	}

	private void jzurueckActionPerformed(ActionEvent evt) {
		Start.getStart().getContentPane().removeAll();
		Hauptmenue ST = new Hauptmenue();
		Start.getStart().add(ST);
		Start.getStart().validate();
	}

}
